package com.lyf.viewapp.dialog.dialogplus;

import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;

import com.lyf.viewapp.R;
import com.lyf.viewapp.base.BaseActivity;
import com.orhanobut.dialogplus.DialogPlus;
import com.orhanobut.dialogplus.ListHolder;
import com.orhanobut.dialogplus.ViewHolder;

import java.util.ArrayList;
import java.util.List;

import butterknife.ButterKnife;
import butterknife.OnClick;

public class DialogPlusOneActivity extends BaseActivity {

    private DialogPlus mDialogPlus;
    private List<String> mListType;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog_plus_one);
        ButterKnife.bind(this);
        initView();

    }

    private void initView() {
        // 初始化数据
        mListType = new ArrayList<>();
        mListType.add("道路");
        mListType.add("工地");
        mListType.add("综合体");
        mListType.add("地下空间");
        mListType.add("道路1");
        mListType.add("工地1");
        mListType.add("综合体1");
        mListType.add("地下空间1");
        mListType.add("道路2");
        mListType.add("工地2");
        mListType.add("综合体2");
        mListType.add("地下空间2");
        mListType.add("道路3");
        mListType.add("工地3");
        mListType.add("综合体3");
        mListType.add("地下空间3");
    }

    @OnClick({R.id.dp_btn1, R.id.dp_btn2})
    public void onClick(View view){
        switch (view.getId()) {
            case R.id.dp_btn1:
                mDialogPlus = DialogPlus.newDialog(DialogPlusOneActivity.this)
                        // Select different holder.ListHolder|ViewHolder(自定义布局)|GridHolder
                        .setContentHolder(new ViewHolder(R.layout.dialog_plus_coustom_layout))
                        // This will enable the expand feature, (similar to android L share dialog)
                        // default is false, only works for grid and list
                        // 这将启用扩展功能，（类似于Android L共享对话框）
                        // 默认为false，只适用于网格和列表
                        .setExpanded(true)
                        // 动画高度
                        // .setExpanded(false, 500)
                        // Set dialog position. BOTTOM (default), TOP or CENTER. You can also combine other Gravity options.
                        // 设置对话框位置。底部（默认），顶部或中心。你也可以结合其他重力选项。
                        .setGravity(Gravity.BOTTOM)
                        // Define if the dialog is cancelable and should be closed when back pressed or out of dialog is clicked
                        // 定义对话框是否是可取消的，当被按下或关闭对话框时，应该关闭对话框
                        .setCancelable(true)
                        // Set Adapter, this adapter will be used to fill the content for ListHolder and GridHolder.
                        // This is required if the content holder is ListHolder or GridHolder.
                        // It is not required if the content holder is ViewHolder.
                        // 设置适配器，这个适配器将被用来填充ListHolder和GridHolder的内容。
                        // 如果内容持有者是ListHolder或GridHolder，则这是必需的。如果内容持有者是ViewHolder，则不需要。
                        // .setAdapter(adapter)
                        // Set animation resources
                        .setInAnimation(R.anim.abc_fade_in)
                        .setOutAnimation(R.anim.abc_fade_out)
                        .create();
                if (mDialogPlus.isShowing()) {
                    mDialogPlus.dismiss();
                }
                mDialogPlus.show();
                break;
            case R.id.dp_btn2:
                DialogAdapter adapter = new DialogAdapter((ArrayList<String>) mListType, this);
                mDialogPlus = DialogPlus.newDialog(DialogPlusOneActivity.this)
                        // Select different holder.ListHolder|ViewHolder(自定义布局)|GridHolder
                        .setContentHolder(new ListHolder())
                        // This will enable the expand feature, (similar to android L share dialog)
                        // default is false, only works for grid and list
                        // 这将启用扩展功能，（类似于Android L共享对话框）
                        .setExpanded(true)
                        .setContentHeight(ViewGroup.LayoutParams.WRAP_CONTENT)
                        .setGravity(Gravity.BOTTOM)
                        .setCancelable(true)
                        .setAdapter(adapter)
                        .setInAnimation(R.anim.abc_fade_in)
                        .setOutAnimation(R.anim.abc_fade_out)
                        .create();
                if (mDialogPlus.isShowing()) {
                    mDialogPlus.dismiss();
                }
                mDialogPlus.show();
                break;
                default:break;
        }
    }
}
